package com.ruoyi.passenger.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 用户基础信息对象 tb_passenger
 * 
 * @author ruoyi
 * @date 2025-08-20
 */
public class TbPassenger extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 乘客ID */
    @Excel(name = "乘客ID")
    private Long passengerId;

    /** 用户姓名 */
    @Excel(name = "用户姓名")
    private String passengerName;

    /** 用户性别（1-男；2-女） */
    @Excel(name = "用户性别", readConverterExp = "1=-男；2-女")
    private Long passengerGender;

    /** 用户电话 */
    @Excel(name = "用户电话")
    private String passengerPhone;

    /** 注册渠道 */
    @Excel(name = "注册渠道")
    private String registerChannel;

    /** 用户注册时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "用户注册时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date registerTime;

    /** 上次登录时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "上次登录时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastLoginTime;

    /** 上次登录方式 */
    @Excel(name = "上次登录方式")
    private String lastLoginMethod;

    /** 上次登录大屏时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "上次登录大屏时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastLargeScreenLoginTime;

    /** 上次登录大屏方式 */
    @Excel(name = "上次登录大屏方式")
    private String lastLargeScreenLoginMethod;

    /** 最近下单时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最近下单时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date latestOrderTime;



    private BigDecimal availableBalance;

    private BigDecimal frozenBalance;

    private BigDecimal invoiceAvailableAmount;

    private BigDecimal unpaidInvoiceAmount;

    private Integer passengerLevel;

    private Integer growthValue;

    private BigDecimal totalMileage;

    private BigDecimal monthlyMileage;

    private BigDecimal totalRechargeAmount;

    private BigDecimal refundAmount;

    private BigDecimal totalOrderPayAmount;

    private BigDecimal monthlyOrderPayAmount;

    public BigDecimal getAvailableBalance() {
        return availableBalance;
    }

    public void setAvailableBalance(BigDecimal availableBalance) {
        this.availableBalance = availableBalance;
    }

    public BigDecimal getFrozenBalance() {
        return frozenBalance;
    }

    public void setFrozenBalance(BigDecimal frozenBalance) {
        this.frozenBalance = frozenBalance;
    }

    public BigDecimal getInvoiceAvailableAmount() {
        return invoiceAvailableAmount;
    }

    public void setInvoiceAvailableAmount(BigDecimal invoiceAvailableAmount) {
        this.invoiceAvailableAmount = invoiceAvailableAmount;
    }

    public BigDecimal getUnpaidInvoiceAmount() {
        return unpaidInvoiceAmount;
    }

    public void setUnpaidInvoiceAmount(BigDecimal unpaidInvoiceAmount) {
        this.unpaidInvoiceAmount = unpaidInvoiceAmount;
    }

    public Integer getPassengerLevel() {
        return passengerLevel;
    }

    public void setPassengerLevel(Integer passengerLevel) {
        this.passengerLevel = passengerLevel;
    }

    public Integer getGrowthValue() {
        return growthValue;
    }

    public void setGrowthValue(Integer growthValue) {
        this.growthValue = growthValue;
    }

    public BigDecimal getTotalMileage() {
        return totalMileage;
    }

    public void setTotalMileage(BigDecimal totalMileage) {
        this.totalMileage = totalMileage;
    }

    public BigDecimal getMonthlyMileage() {
        return monthlyMileage;
    }

    public void setMonthlyMileage(BigDecimal monthlyMileage) {
        this.monthlyMileage = monthlyMileage;
    }

    public BigDecimal getTotalRechargeAmount() {
        return totalRechargeAmount;
    }

    public void setTotalRechargeAmount(BigDecimal totalRechargeAmount) {
        this.totalRechargeAmount = totalRechargeAmount;
    }

    public BigDecimal getRefundAmount() {
        return refundAmount;
    }

    public void setRefundAmount(BigDecimal refundAmount) {
        this.refundAmount = refundAmount;
    }

    public BigDecimal getTotalOrderPayAmount() {
        return totalOrderPayAmount;
    }

    public void setTotalOrderPayAmount(BigDecimal totalOrderPayAmount) {
        this.totalOrderPayAmount = totalOrderPayAmount;
    }

    public BigDecimal getMonthlyOrderPayAmount() {
        return monthlyOrderPayAmount;
    }

    public void setMonthlyOrderPayAmount(BigDecimal monthlyOrderPayAmount) {
        this.monthlyOrderPayAmount = monthlyOrderPayAmount;
    }

    public void setPassengerId(Long passengerId)
    {
        this.passengerId = passengerId;
    }

    public Long getPassengerId() 
    {
        return passengerId;
    }

    public void setPassengerName(String passengerName) 
    {
        this.passengerName = passengerName;
    }

    public String getPassengerName() 
    {
        return passengerName;
    }

    public void setPassengerGender(Long passengerGender) 
    {
        this.passengerGender = passengerGender;
    }

    public Long getPassengerGender() 
    {
        return passengerGender;
    }

    public void setPassengerPhone(String passengerPhone) 
    {
        this.passengerPhone = passengerPhone;
    }

    public String getPassengerPhone() 
    {
        return passengerPhone;
    }

    public void setRegisterChannel(String registerChannel) 
    {
        this.registerChannel = registerChannel;
    }

    public String getRegisterChannel() 
    {
        return registerChannel;
    }

    public void setRegisterTime(Date registerTime) 
    {
        this.registerTime = registerTime;
    }

    public Date getRegisterTime() 
    {
        return registerTime;
    }

    public void setLastLoginTime(Date lastLoginTime) 
    {
        this.lastLoginTime = lastLoginTime;
    }

    public Date getLastLoginTime() 
    {
        return lastLoginTime;
    }

    public void setLastLoginMethod(String lastLoginMethod) 
    {
        this.lastLoginMethod = lastLoginMethod;
    }

    public String getLastLoginMethod() 
    {
        return lastLoginMethod;
    }

    public void setLastLargeScreenLoginTime(Date lastLargeScreenLoginTime) 
    {
        this.lastLargeScreenLoginTime = lastLargeScreenLoginTime;
    }

    public Date getLastLargeScreenLoginTime() 
    {
        return lastLargeScreenLoginTime;
    }

    public void setLastLargeScreenLoginMethod(String lastLargeScreenLoginMethod) 
    {
        this.lastLargeScreenLoginMethod = lastLargeScreenLoginMethod;
    }

    public String getLastLargeScreenLoginMethod() 
    {
        return lastLargeScreenLoginMethod;
    }

    public void setLatestOrderTime(Date latestOrderTime) 
    {
        this.latestOrderTime = latestOrderTime;
    }

    public Date getLatestOrderTime() 
    {
        return latestOrderTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("passengerId", getPassengerId())
            .append("passengerName", getPassengerName())
            .append("passengerGender", getPassengerGender())
            .append("passengerPhone", getPassengerPhone())
            .append("registerChannel", getRegisterChannel())
            .append("registerTime", getRegisterTime())
            .append("lastLoginTime", getLastLoginTime())
            .append("lastLoginMethod", getLastLoginMethod())
            .append("lastLargeScreenLoginTime", getLastLargeScreenLoginTime())
            .append("lastLargeScreenLoginMethod", getLastLargeScreenLoginMethod())
            .append("latestOrderTime", getLatestOrderTime())
            .toString();
    }
}
